TX/RXA TX/RXB:总线通道A和B,经过耦合器后接出。 RTAD4-RTAD0及RTADP:终端地址及奇校验设置,此处由上位机设置。 3 软件设计 软件主要有两部分组成,主程序和中断处理程序。 主程序完成dsp的初始化、61580初始化、根据接收的消息标志,完成消息处理,以及根据需要更新需要发送的消息,如图2所示。关于dsp的初始化此处不再详细描述,重点介绍61580初始化。 消息中断处理程序完成已接收消息的标志置位,对于需要及时处理的消息,在中断中完成处理,详述见下文。 3.1 BU-61580芯片初始化 该产品总线通信协议有以下特点:消息分为两类,周期类消息、事件消息;周期类消息每个周期打包发送;消息可双通道通信;对于不同时间,同一个子地址消息,重点考虑最新的消息内容。 根据上述协议特点,对BU-61580进行如下设置:RT增强模式、单消息模式、消息结束中断等。 其具体工作流程如下:dsp上电后,由dsp通过访问61580的寄存器空间(本文中,其空间映射为dsp的0x9000地址为起始的数据空间)完成61580的工作模式设置。 具体寄存器设置,可见如下代码: /*定义BU-61580寄存器空间基地址*/ unsigned int *pAceReg= (unsigned int *)0x9000; /*BU-61580寄存器初始化*/ *(pAceReg+3)=0x0001; * pAceReg=0x2013; *(pAceReg+1)=0x8f80; *(pAceReg+2)=0x8410; *(pAceReg+7)=0x8080; *(pAceReg+8)=0x0008; *(pAceReg+9)=0x0000; dsp通过访问61580的数据空间(映射为dsp的0x8000地址为起始的数据空间),完成堆栈指针设置,Stack Pointer A的设置(本文不使用堆栈B),查询表设置(分配发送数据空间映射,分配接收数据的空间映射,子地址控制字配置:发送、接收消息结束中断),待发送消息的初始化等,具体代码参考: /*定义BU-61580数据空间基地址*/ unsigned int * pAceMem= (unsigned int *)0x8000; /* BU-61580数据空间初始化*/ |